package com.hk.shop.base.service;

import java.io.Serializable;
import java.util.List;

import com.hk.shop.page.Page;
import com.hk.shop.page.PageInfo;


public interface BaseService <T, ID extends Serializable>{
	
	/**
	 * 增
	 * @param t
	 * @return
	 */
	T save(T t) throws Exception;
	
	
	T saveOrUpdate(T t) throws Exception;
	
	/**
	 * 删
	 * @param t
	 */
	void delete(T t) throws Exception;
	
	
	
	
	/**
	 * 改
	 * @param t
	 * @return
	 */
	void update(T t) throws Exception;
	
	
	/**
	 * 查
	 * @param id
	 * @return
	 */
	T find(ID id) throws Exception;
	
	
	/**
	 * 
	 * 查
	 * @param id
	 * @return
	 */
	T findUniqueByProperty(String PropertyName, Object value) throws Exception;
	
	
	/**
	 * 分页获取list
	 * @param pageinfo
	 * @return
	 */
	Page<T> findList(PageInfo pageInfo) throws Exception;
	
	/**
	 * 查询所有数据
	 * @param 
	 * @return
	 */
	List<T> findAll() throws Exception;
	
	/**
	 * 单独获取总数量
	 * @MethodName  getTotalNum
	 * @returnType 	Page<T>
	 * @version 	1.0
	 */
	long getTotalNum(PageInfo pageInfo) throws Exception;
	
	

}
